\documentclass[a4paper,12pt,landscape]{article}
\usepackage[landscape]{geometry}
\usepackage{graphicx}
\usepackage{tikz-er2}
\usepackage{verbatim}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{5pt}

\begin{document}

\thispagestyle{empty}

\usetikzlibrary{positioning}
\usetikzlibrary{shadows}

\tikzstyle{every entity} = [top color=white, bottom color=blue!30, 
  draw=blue!50!black!100, drop shadow]
\tikzstyle{every weak entity} = [drop shadow={shadow xshift=.7ex, 
    shadow yshift=-.7ex}]
\tikzstyle{every attribute} = [top color=white, bottom color=yellow!20, 
  draw=yellow, node distance=7em, drop shadow]
\tikzstyle{every relationship} = [top color=white, bottom color=red!20, 
  draw=red!50!black!100, drop shadow]
\tikzstyle{every isa} = [top color=white, bottom color=green!20, 
  draw=green!50!black!100, drop shadow]

\centering

%% Cosas que faltan:

%% A tener en cuenta para las cardinalidades/hipotesis:

%% * ¿Puede un programa no estar asignado a ningún espacio? <-> (¿Puede un espacio no tener ningún programa?)
%% (no,no)

%% * ¿Puede un Anuncio no estar asignado a ninguna tanda?
%% si

%% * ¿Puede ser que un anuncio pertenezca a mas de un anunciante?
%%   (Algo asi como una campaña de un grupo empresas). ¿Puede ser que
%%   un anunciante no este auspiciando ningún anuncio?
%%   (no, si)

%% * Supuse que un espacio puede no tener tandas (por ejemplo un
%%   espacio de películas sin cortes comerciales). Como Tanda
%%   Publicitaria es débil, solo puede estar asociada a un solo
%%   espacio.
%%   (ok)

%% 

%% * ¿Puede un programa estar producido por mas de un productor? (Una
%%   producción 'colaborativa'). (no)


\begin{tikzpicture}[node distance=7em, every edge/.style={link}]
  % Anunciante
  \node[entity] (anunciante) {Anunciante};
  \node[attribute] (anunciante-cuenta) [below of=anunciante] {\key {Nro. Cuenta}} edge (anunciante);
  \node[attribute] (anunciante-domicilio) [below right of=anunciante] {Domicilio} edge (anunciante);
  \node[attribute] (anunciante-telefono) [left of=anunciante] {Teléfono} edge (anunciante);
  \node[attribute] (anunciante-razon-social) [below left of=anunciante] {Razón Social} edge (anunciante);

  % Relacion entre Anunciante y Anuncio
  \node[relationship] (auspicia) [above of=anunciante] {Auspicia} edge node[auto,swap] {1,1} (anunciante);
  % Cada anunciante auspicia uno o mas anuncios. Un anuncio pertenece a 1 solo anunciante.

  % Anuncio
  \node[entity] (anuncio) [above of=auspicia] {Anuncio} edge node[auto,swap] {0,N} (auspicia);
  \node[attribute] (anuncio-titulo) [above left of=anuncio] {\key{Titulo}} edge (anuncio);
  \node[attribute] (anuncio-producto) [above of=anuncio] {Producto} edge (anuncio);
  \node[attribute] (anuncio-duracion) [above right of=anuncio] {Duración} edge (anuncio);

  % Relacion entre Anuncio y TandaPublicitaria
  \node[relationship] (se-publicitan) [left =2em of anuncio] {Publicitan} edge node[auto,swap] {1,N} (anuncio);
  \node[attribute] (se-publicitan-orden) [below =1em of se-publicitan] {Orden} edge (se-publicitan);
  % A cada tanda se asignan uno o mas Anuncios. Cada anuncio esta asignado a una o mas tandas publicitarias.

  % Tanda Publicitaria
  \node[weak entity] (tanda-publicitaria) [left=2em of se-publicitan] {Tanda Publicitaria} edge node[auto,swap] {0,N} (se-publicitan);
  \node[attribute] (tanda-publicitaria-numero) [above left of= tanda-publicitaria] {\discriminator{Numero}} edge (tanda-publicitaria);
  \node[derived attribute] (tanda-publicitaria-duracion) [above right of= tanda-publicitaria] {Duración} edge (tanda-publicitaria);
  \node[attribute] (tanda-hora-inicio) [above of = tanda-publicitaria] {Hora Inicio Tanda} edge (tanda-publicitaria);

  % Relacion entre Tanta Publicitaria y Espacio
  \node[ident relationship] (tanda-en-espacio) [left=2em of tanda-publicitaria] {Tanda en espacio} edge [total] node[auto,swap] {0,N} (tanda-publicitaria);
  % Cada tanda esta asociada a un espacio. Cada espacio puede tener ninguna o varias tandas.

  % Espacio
  \node[entity] (espacio) [left= 2em of tanda-en-espacio] {Espacio} edge node[auto,swap] {1,1} (tanda-en-espacio);
  \node[attribute] (espacio-dia) [above left of= espacio] {\key {Dia}} edge (espacio);
  \node[attribute] (espacio-hora-inicio) [above = 5em of espacio] {\key{Hora inicio}} edge (espacio);
  \node[derived attribute] (espacio-duracion) [below left of=espacio] {Duración} edge (espacio);
  \node[attribute] (espacio-precio) [left of = espacio] {Precio} edge (espacio);

  % Relacion entre Espacio y Programa
  \node[relationship] (composicion-espacio) [below = 5em of espacio] {Composición espacio} edge node[auto,swap] {1,N} (espacio);
  % Un espacio tiene un solo programa. Un programa puede emitirse en
  % diferentes espacios (Por ejemplo una serie que se emite varios
  % dias a la semana).

  % Programa
  \node[entity] (programa) [right = 10em of composicion-espacio] {Programa} edge node[auto,swap] {1,1} (composicion-espacio);
  \node[attribute] (programa-nombre) [above left =2em of programa] {\key {Nombre}} edge (programa);
  \node[attribute] (programa-duracion) [above right =2em of programa] {Duracion} edge (programa);
  \node[attribute] (programa-clasificacion) [above = 3em of programa] {Clasificación} edge (programa);

  % 
  \node[isa] (es-un) [below=2em of programa] {Es Un} edge node[auto,swap] {1,1} (programa);

  % Programa grabado
  \node[entity] (programa-grabado) [below left = 2em of es-un] {Programa grabado} edge (es-un);

  % Programa en vivo
  \node[entity] (programa-vivo) [below right = 2em of es-un] {Programa en vivo} edge (es-un);

  % Relacion entre Programa y Publico
  \node[relationship] (utilizacion-estudio) [below right = 5em of programa-vivo] {Utilización estudio} edge node[auto,swap] {0,N} (programa-vivo);
  % Un estudio puede utilizarse para varios programas. Un programa puede utilizar ningúno o varios estudios.

  % Estudio
  \node[entity] (estudio) [below =2em of utilizacion-estudio] {Estudio} edge node[auto,swap] {1,N} (utilizacion-estudio);
  \node[attribute] (estudio-numero) [left of= estudio] {\key{Numero}} edge (estudio);
  \node[attribute] (estudio-capacidad) [right of=estudio] {Capacidad} edge (estudio);

  % Relacion entre Programa y Movil
  \node[relationship] (asignacion-movil) [below left= 5em of programa-vivo] {Asignación movil} edge node[auto,swap] {0,N} (programa-vivo);
  % Un programa puede utilizar ninguno o varios moviles. Un movil puede estar asignado a ninguno o muchos programas.

  % Movil
  \node[entity] (movil) [below = 2em of asignacion-movil] {Movil} edge node[auto,swap] {0,N} (asignacion-movil);
  \node[attribute] (movil-numero) [right of= movil] {\key{Numero}} edge (movil);
  \node[attribute] (movil-caracteristicas) [left =2em of movil] {Caracteristicas} edge (movil);

  % Relacion entre Programa y Productor
  \node[relationship] (produce) [left= 2em of programa-grabado] {Produce} edge node[auto,swap] {0,N} (programa-grabado);
  % Un productor puede estar produciendo ninguno o varios programas. Un programa es producido por uno o mas productores.

  % Productor
  \node[entity] (productor) [below= 2em of produce] {Productor} edge node[auto,swap] {1,1} (produce);
  \node[attribute] (productor-cuit) [below right of= productor] {\key{CUIT}} edge (productor);
  \node[attribute] (productor-razon-social) [below left of= productor] {Razón social} edge (productor);

\end{tikzpicture}

\end{document}
